package com.example.service;

import com.example.common.Result;
import com.example.common.PageResult;
import com.example.dto.HaircutPackageDTO;
import com.example.vo.HaircutPackageVO;

import java.util.List;

/**
 * 理发套餐服务接口
 */
public interface HaircutPackageService {
    
    /**
     * 新增套餐
     */
    Result<Void> addHaircutPackage(HaircutPackageDTO packageDTO);
    
    /**
     * 删除套餐
     */
    Result<Void> deleteHaircutPackage(Long id);
    
    /**
     * 更新套餐
     */
    Result<Void> updateHaircutPackage(Long id, HaircutPackageDTO packageDTO);
    
    /**
     * 根据ID查询套餐
     */
    Result<HaircutPackageVO> getHaircutPackageById(Long id);
    
    /**
     * 查询所有套餐
     */
    Result<List<HaircutPackageVO>> getAllHaircutPackages();
    
    /**
     * 查询所有启用的套餐
     */
    Result<List<HaircutPackageVO>> getAllEnabledHaircutPackages();
    
    /**
     * 分页查询套餐
     */
    Result<PageResult<HaircutPackageVO>> getHaircutPackagePage(int page, int size, String keyword);
    
    /**
     * 检查套餐名称是否存在
     */
    Result<Boolean> checkPackageNameExists(String packageName, Long excludeId);
    
    /**
     * 更新套餐状态
     */
    Result<Void> updatePackageStatus(Long id, Integer status);
    
    /**
     * 启用套餐
     */
    Result<Void> enablePackage(Long id);
    
    /**
     * 禁用套餐
     */
    Result<Void> disablePackage(Long id);
    
    /**
     * 获取套餐统计信息
     */
    Result<Object> getPackageStatistics();
} 